i18n stuff
authorKenneth Christiansen <kenneth@src.gnome.org>
Thu, 27 Jul 2000 12:05:21 +0000 (12:05 +0000)
committerKenneth Christiansen <kenneth@src.gnome.org>
Thu, 27 Jul 2000 12:05:21 +0000 (12:05 +0000)
po/POTFILES.in
po/README.tools [new file with mode: 0644]
po/da.po
po/desk.pl [new file with mode: 0755]
po/update.pl [new file with mode: 0755]

index 5fb03d6416a6b91e48b4741fd098b94314d6ab94..f3bb18e2432bdd4157c98e547fd4f7f98291321a 100644 (file)
@@ -1,5 +1,6 @@
 # Files from the Gtk ditribution which have already been
 # marked to allow runtime translation of messages
+gdk-pixbuf/io-gif.c
 gtk/gtkcolorsel.c
 gtk/gtkcolorseldialog.c
 gtk/gtkfilesel.c
diff --git a/po/README.tools b/po/README.tools
new file mode 100644 (file)
index 0000000..4ec99c1
--- /dev/null
@@ -0,0 +1,58 @@
+The po/ directory includes two perlscripts, which is done to help 
+making the translations fully uptodate.
+
+The first script is called update.pl and is supposed to be run like this:
+
+       ./update.pl [OPTIONS] ...LANGCODE
+
+This will updates the pot file (the po template, generated from the source code) 
+and merge them with the translations po files.
+
+For instance to do this for Danish, type the following
+
+       ./update.pl da
+
+
+The update.pl script also supports other options, they are:
+
+  -V, --version                shows the version
+  -H, --help                   shows this help page
+  -P, --pot                    only generates the potfile
+  -M, --maintain               search for missing files in POTFILES.in
+
+Especially the --maintain option is very handy for package maintainer, to check
+if you included all the files that have marked strings in the POTFILES.in, so
+they will be in the generated po template, the socalled pot file.
+
+There is though one thing to take notice of with this option, please check the 
+configure.in file to make sure that the files you add to POTFILES.in are being
+build, otherwise this can leed to "make dist" throuble.
+
+
+The other utility is the desk.pl script, which will check the cvs module for
+missing translation in files like *.desktop, *.directory, *.soundlist and so on.
+
+Run the script like this:
+
+       ./desk.pl [OPTIONS] ...LANGCODE ENTRY
+
+An example use could be.
+
+       ./desk.pl da
+
+which will check all the files for missing Name[da] entries, or 
+
+       ./desk.pl no Comment
+
+which will check all the files for missing Comment[no] entries. "Comment" can
+here be replaced with whatever you like
+
+All scripts support the --help option for further help, though it's not very
+extensive for the moment.
+
+Kenneth Christiansen
+
+kenneth@gnu.org  
+kenneth@gnome.org
+
+Both scripts are copyright 2000 The Free Software Foundation and me.
index 9dc18009af6af4ff7de5025823a3fde6f3ad2292..a41d42bd650e7b18134de460441bec2c44c9ce89 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -1,11 +1,12 @@
 # GTK+ fordansket.
 # Copyright (C) 1999 Free Software Foundation, Inc.
 # Birger Langkjer <birger.langkjer@image.dk>, 1999.
+# Kenneth Christiansen, 1999-2000
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gtk+ 1.3.0\n"
-"POT-Creation-Date: 2000-07-14 16:26-0400\n"
+"POT-Creation-Date: 2000-07-27 14:03+0200\n"
 "PO-Revision-Date: 1999-12-08 17:14+01:00\n"
 "Last-Translator: Birger Langkjer <birger.langkjer@image.dk>\n"
 "Language-Team: Danish <sslug-locale@sslug.dk>\n"
@@ -13,52 +14,51 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: gtk/gtkcolorsel.c:1415
+#: gtk/gtkcolorsel.c:1418
 msgid "Hue:"
 msgstr "Glød:"
 
-#: gtk/gtkcolorsel.c:1416
+#: gtk/gtkcolorsel.c:1419
 msgid "Saturation:"
 msgstr "Mætning:"
 
-#: gtk/gtkcolorsel.c:1417
+#: gtk/gtkcolorsel.c:1420
 msgid "Value:"
 msgstr "Værdi:"
 
-#: gtk/gtkcolorsel.c:1418
+#: gtk/gtkcolorsel.c:1421
 msgid "Red:"
 msgstr "Rød:"
 
-#: gtk/gtkcolorsel.c:1419
+#: gtk/gtkcolorsel.c:1422
 msgid "Green:"
 msgstr "Grøn:"
 
-#: gtk/gtkcolorsel.c:1420
+#: gtk/gtkcolorsel.c:1423
 msgid "Blue:"
 msgstr "Blå:"
 
-#: gtk/gtkcolorsel.c:1423
+#: gtk/gtkcolorsel.c:1426
 msgid "Opacity:"
 msgstr "Gennemsigtighed:"
 
-#: gtk/gtkcolorsel.c:1438
-#, fuzzy
+#: gtk/gtkcolorsel.c:1441
 msgid "Hex Value:"
-msgstr "Værdi:"
+msgstr "Hexværdi:"
 
-#: gtk/gtkcolorsel.c:1459
+#: gtk/gtkcolorsel.c:1462
 msgid "Custom Palette"
-msgstr ""
+msgstr "Personlig palette"
 
-#: gtk/gtkcolorsel.c:1464
+#: gtk/gtkcolorsel.c:1467
 msgid "Set Color"
-msgstr ""
+msgstr "Sæt farve"
 
 #. The OK button
 #: gtk/gtkcolorseldialog.c:105 gtk/gtkfilesel.c:567 gtk/gtkfontsel.c:952
 #: gtk/gtkgamma.c:415
 msgid "OK"
-msgstr "OK"
+msgstr "Ok"
 
 #. The Cancel button
 #: gtk/gtkcolorseldialog.c:111 gtk/gtkfilesel.c:574 gtk/gtkfilesel.c:963
@@ -144,9 +144,8 @@ msgid "Family:"
 msgstr "Familie:"
 
 #: gtk/gtkfontsel.c:194
-#, fuzzy
 msgid "Style:"
-msgstr "Tilføj stil:"
+msgstr "Stil:"
 
 #: gtk/gtkfontsel.c:199
 msgid "Size:"
@@ -176,11 +175,11 @@ msgstr "Gamma-v
 #. shell and main vbox
 #: gtk/gtkinputdialog.c:185
 msgid "Input"
-msgstr "Input"
+msgstr "Indstrøm"
 
 #: gtk/gtkinputdialog.c:193
 msgid "No input devices"
-msgstr "Ingen inputenheder"
+msgstr "Ingen indenheder"
 
 #: gtk/gtkinputdialog.c:222
 msgid "Device:"
@@ -240,7 +239,7 @@ msgstr "Y-h
 
 #: gtk/gtkinputdialog.c:476
 msgid "Wheel"
-msgstr ""
+msgstr "Hjul"
 
 #: gtk/gtkinputdialog.c:516
 msgid "none"
@@ -248,7 +247,7 @@ msgstr "ingen"
 
 #: gtk/gtkinputdialog.c:550 gtk/gtkinputdialog.c:586
 msgid "(disabled)"
-msgstr "(slået fra)"
+msgstr "(deaktiveret)"
 
 #: gtk/gtkinputdialog.c:579
 msgid "(unknown)"
@@ -264,17 +263,17 @@ msgstr "ryd"
 msgid "Page %u"
 msgstr "Side %u"
 
-#: gtk/gtkrc.c:1875
+#: gtk/gtkrc.c:1872
 #, c-format
 msgid "Unable to locate image file in pixmap_path: \"%s\" line %d"
 msgstr "Kunne ikke finde billedfil i pixmap_path: \"%s\" linje %d"
 
-#: gtk/gtkrc.c:1878
+#: gtk/gtkrc.c:1875
 #, c-format
 msgid "Unable to locate image file in pixmap_path: \"%s\""
 msgstr "Kunne ikke finde billedfil i pixmap_path: \"%s\""
 
-#: gtk/gtkthemes.c:103
+#: gtk/gtkthemes.c:117
 #, c-format
 msgid "Unable to locate loadable module in module_path: \"%s\","
 msgstr "Kunne ikke finde modul i module_path: \"%s\","
@@ -282,177 +281,3 @@ msgstr "Kunne ikke finde modul i module_path: \"%s\","
 #: gtk/gtktipsquery.c:180
 msgid "--- No Tip ---"
 msgstr "--- Ingen hjælp ---"
-
-#~ msgid "Foundry:"
-#~ msgstr "Skaber:"
-
-#~ msgid "Weight:"
-#~ msgstr "Vægt:"
-
-#~ msgid "Slant:"
-#~ msgstr "Hældning:"
-
-#~ msgid "Set Width:"
-#~ msgstr "Sæt bredde:"
-
-#~ msgid "Pixel Size:"
-#~ msgstr "Pixelstørrelse:"
-
-#~ msgid "Point Size:"
-#~ msgstr "Punktstørrelse:"
-
-#~ msgid "Resolution X:"
-#~ msgstr "Opløsning X:"
-
-#~ msgid "Resolution Y:"
-#~ msgstr "Opløsning Y:"
-
-#~ msgid "Spacing:"
-#~ msgstr "Breddetype:"
-
-#~ msgid "Average Width:"
-#~ msgstr "Gennemsnitsbredde:"
-
-#~ msgid "Charset:"
-#~ msgstr "Tegnsæt:"
-
-#~ msgid "Font Property"
-#~ msgstr "Skrifttypeegenskab"
-
-#~ msgid "Requested Value"
-#~ msgstr "Ønsket værdi"
-
-#~ msgid "Actual Value"
-#~ msgstr "Egentlig værdi"
-
-#~ msgid "Font"
-#~ msgstr "Skrifttype"
-
-#~ msgid "Font:"
-#~ msgstr "Skrifttype:"
-
-#~ msgid "Font Style:"
-#~ msgstr "Skrifttypestil:"
-
-#~ msgid "Reset Filter"
-#~ msgstr "Nulstil filter"
-
-#~ msgid "Metric:"
-#~ msgstr "Metrisk:"
-
-#~ msgid "Points"
-#~ msgstr "Punkter"
-
-#~ msgid "Pixels"
-#~ msgstr "Pixler"
-
-#~ msgid "Font Information"
-#~ msgstr "Skrifttypeinformation"
-
-#~ msgid "Requested Font Name:"
-#~ msgstr "Ønsket skrifttypenavn:"
-
-#~ msgid "Actual Font Name:"
-#~ msgstr "Rigtigt skrifttypenavn:"
-
-#~ msgid "%i fonts available with a total of %i styles."
-#~ msgstr "%i skrifttyper tilstede med ialt %i stilvarianter."
-
-#~ msgid "Filter"
-#~ msgstr "Filter"
-
-#~ msgid "Font Types:"
-#~ msgstr "Skrifttype-typer:"
-
-#~ msgid "Bitmap"
-#~ msgstr "Bitmap"
-
-#~ msgid "Scalable"
-#~ msgstr "Skalérbar"
-
-#~ msgid "Scaled Bitmap"
-#~ msgstr "Skaleret bitmap"
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "(nil)"
-#~ msgstr "(nul)"
-
-#~ msgid "regular"
-#~ msgstr "regulær"
-
-#~ msgid "italic"
-#~ msgstr "kursiv"
-
-#~ msgid "oblique"
-#~ msgstr "skæv"
-
-#~ msgid "reverse italic"
-#~ msgstr "omvendt kursiv"
-
-#~ msgid "reverse oblique"
-#~ msgstr "omvendt skæv"
-
-#~ msgid "other"
-#~ msgstr "andre"
-
-#~ msgid "[M]"
-#~ msgstr "[M]"
-
-#~ msgid "[C]"
-#~ msgstr "[C]"
-
-#~ msgid "The selected font is not available."
-#~ msgstr "Den valgte skrifttype er ikke tilstede."
-
-#~ msgid "The selected font is not a valid font."
-#~ msgstr "Du har valgt en ugyldig skrifttype."
-
-#~ msgid "This is a 2-byte font and may not be displayed correctly."
-#~ msgstr "Dette er en 2-byte skrifttype, muligvis ser den ikke sådan ud."
-
-#~ msgid "roman"
-#~ msgstr "romansk"
-
-#~ msgid "proportional"
-#~ msgstr "proportionel"
-
-#~ msgid "monospaced"
-#~ msgstr "fast bredde"
-
-#~ msgid "char cell"
-#~ msgstr "konsolskrifttype"
-
-#~ msgid "Font: (Filter Applied)"
-#~ msgstr "Skrifttype: (Filtreret)"
-
-#~ msgid "heavy"
-#~ msgstr "tung"
-
-#~ msgid "extrabold"
-#~ msgstr "ekstrafed"
-
-#~ msgid "bold"
-#~ msgstr "fed"
-
-#~ msgid "demibold"
-#~ msgstr "halvfed"
-
-#~ msgid "medium"
-#~ msgstr "medium"
-
-#~ msgid "normal"
-#~ msgstr "normal"
-
-#~ msgid "light"
-#~ msgstr "let"
-
-#~ msgid "extralight"
-#~ msgstr "ekstralet"
-
-#~ msgid "thin"
-#~ msgstr "tynd"
-
-#~ msgid "MAX_FONTS exceeded. Some fonts may be missing."
-#~ msgstr "MAX_FONTS er overskredet. Nogle skrifttyper mangler måske."
diff --git a/po/desk.pl b/po/desk.pl
new file mode 100755 (executable)
index 0000000..08a2a18
--- /dev/null
@@ -0,0 +1,118 @@
+#!/usr/bin/perl -w
+
+#  GNOME entry finder utility.
+#  (C) 2000 The Free Software Foundation
+# 
+#  Author(s): Kenneth Christiansen
+
+
+$VERSION = "1.0.0 beta 5";
+$LANG    = $ARGV[0];
+$OPTION2 = $ARGV[1];
+$SEARCH  = "Name";
+
+if (! $LANG){
+    print "desk.pl:  missing file arguments\n";
+    print "Try `desk.pl --help' for more information.\n";
+    exit;
+}
+
+if ($OPTION2){
+    $SEARCH=$OPTION2;
+}
+
+if ($LANG){
+
+if ($LANG=~/^-(.)*/){
+
+    if ("$LANG" eq "--version" || "$LANG" eq "-V"){
+        print "GNOME Entry finder $VERSION\n";
+       print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n";
+       print "Copyright (C) 2000 Free Software Foundation, Inc.\n";
+       print "This is free software; see the source for copying conditions.  There is NO\n";
+       print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
+        exit;
+    }
+
+    elsif ($LANG eq "--help" || "$LANG" eq "-H"){
+       print "Usage: ./desk.pl [OPTIONS] ...LANGCODE ENTRY\n";
+       print "Checks .desktop and alike files for missing translations.\n\n";
+       print "  -V, --version                shows the version\n";
+       print "  -H, --help                   shows this help page\n";
+       print "\nReport bugs to <kenneth\@gnome.org>.\n";
+        exit;
+    }
+
+    else{
+       print "desk.pl: invalid option -- $LANG\n";
+       print "Try `desk.pl --help' for more information.\n";
+        exit;
+    }
+}
+
+else{
+
+    $a="find ../ -print | egrep '.*\\.(desktop|soundlist"
+      ."|directory)' ";
+
+    $b="find ../ -print | egrep '.*\\.(desktop|soundlist"
+      ."|directory)' "; 
+
+    print "Searching for missing $SEARCH\[$LANG\] entries...\n";
+
+    open(BUF1, "$a|");
+    open(BUF2, "$b|");
+
+    @buf1 = <BUF1>;
+    foreach my $file (@buf1){ 
+        open FILE, "<$file";
+        while (<FILE>) {
+           if ($_=~/$SEARCH\[$LANG\]\=/o){ 
+                $file = unpack("x2 A*",$file) . "\n";          
+                push @buff1, $file;
+                last;
+           }
+        }
+    }
+
+    @buf2 = <BUF2>;
+    foreach my $file (@buf2){
+        open FILE, "<$file";
+        while (<FILE>) {
+           if ($_=~/$SEARCH\=/o){
+                $file = unpack("x2 A*",$file) . "\n";
+                push @buff2, $file;
+                last;
+           }
+        }
+    }
+
+    @bufff1 = sort (@buff1);
+    @bufff2 = sort (@buff2);
+
+    my %in2;
+    foreach (@bufff1) {
+        $in2{$_} = 1;
+    }
+   foreach (@bufff2){
+        if (!exists($in2{$_})){
+            push @result, $_ } 
+        }
+    }
+
+    open(OUT1, ">MISSING.$LANG.$SEARCH");
+       print OUT1 @result ;
+    close OUT1;
+
+
+    stat("MISSING.$LANG.$SEARCH");
+        print "\nWell, you need to fix these:\n\n" if -s _;
+        print @result if -s _;
+        print "\nThe list is saved in MISSING.$LANG.$SEARCH\n" if -s _;
+        print "\nWell, it's all perfect! Congratulation!\n" if -z _;
+        unlink "MISSING.$LANG.$SEARCH" if -z _;
+    exit;      
+}
+
+
diff --git a/po/update.pl b/po/update.pl
new file mode 100755 (executable)
index 0000000..b20660b
--- /dev/null
@@ -0,0 +1,166 @@
+#!/usr/bin/perl -w
+
+#  GNOME po update utility.
+#  (C) 2000 The Free Software Foundation
+#
+#  Author(s): Kenneth Christiansen
+
+
+$VERSION = "1.2.5 beta 2";
+$LANG    = $ARGV[0];
+$PACKAGE  = "gnumeric";
+
+if (! $LANG){
+    print "update.pl:  missing file arguments\n";
+    print "Try `update.pl --help' for more information.\n";
+    exit;
+}
+
+if ($LANG=~/^-(.)*/){
+
+    if ("$LANG" eq "--version" || "$LANG" eq "-V"){
+        print "GNOME PO Updater $VERSION\n";
+        print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n";
+        print "Copyright (C) 2000 Free Software Foundation, Inc.\n";
+        print "This is free software; see the source for copying conditions.  There is NO\n";
+        print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
+       exit;
+    }
+
+
+    elsif ($LANG eq "--help" || "$LANG" eq "-H"){
+        print "Usage: ./update.pl [OPTIONS] ...LANGCODE\n";
+        print "Updates pot files and merge them with the translations.\n\n";
+        print "  -V, --version                shows the version\n";
+        print "  -H, --help                   shows this help page\n";
+        print "  -P, --pot                    only generates the potfile\n";
+        print "  -M, --maintain               search for missing files in POTFILES.in\n";
+       print "\nExamples of use:\n";
+        print "update.sh --pot    just creates a new pot file from the source\n";
+       print "update.sh da       created new pot file and updated the da.po file\n\n";
+        print "Report bugs to <kenneth\@gnome.org>.\n";
+       exit;
+    }
+
+    elsif($LANG eq "--pot" || "$LANG" eq "-P"){
+                
+        print "Building the $PACKAGE.pot ...";
+
+        $b="xgettext --default-domain\=$PACKAGE --directory\=\.\."
+          ." --add-comments --keyword\=\_ --keyword\=N\_"
+          ." --files-from\=\.\/POTFILES\.in ";
+        $b1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
+           ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
+         
+        `$b`;
+        `$b1`;
+
+        print "...done\n";
+
+        exit;
+    }
+        
+    elsif ($LANG eq "--maintain" || "$LANG" eq "-M"){
+
+        $a="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' ";
+
+        open(BUF2, "POTFILES.in") || die "update.pl:  there's not POTFILES.in!!!\n";
+        print "Searching for missing _(\" \") entries...\n";
+        open(BUF1, "$a|");
+
+
+        @buf2 = <BUF2>;
+        @buf1 = <BUF1>;
+
+        if (-s "POTFILES.ignore"){
+            open FILE, "POTFILES.ignore";
+            while (<FILE>) {
+                if ($_=~/^[^#]/o){
+                    push @bup, $_;
+                }
+            }
+            print "POTFILES.ignore found! Ignoring files...\n";
+           @buf2 = (@bup, @buf2);
+        }
+
+        foreach my $file (@buf1){
+            open FILE, "<$file";
+            while (<FILE>) {
+                if ($_=~/_\(\"/o){
+                    $file = unpack("x3 A*",$file) . "\n";
+                    push @buff1, $file;
+                    last;
+                }
+            }
+        }
+
+        @bufff1 = sort (@buff1);
+
+        @bufff2 = sort (@buf2);
+
+        my %in2;
+        foreach (@bufff2) {
+            $in2{$_} = 1;
+        }
+
+        foreach (@bufff1){
+            if (!exists($in2{$_})){
+                push @result, $_ }
+            }
+
+        if(@result){
+            open OUT, ">POTFILES.in.missing";
+            print OUT @result;
+            print "\nHere are the results:\n\n", @result, "\n";
+            print "File POTFILES.in.missing is being placed in directory...\n";
+            print "Please add the files that should be ignored in POTFILES.ignore\n";
+        }
+        else{
+            print "\nWell, it's all perfect! Congratulation!\n";
+        }         
+    }
+
+
+    else{
+        print "update.pl: invalid option -- $LANG\n";
+        print "Try `update.pl --help' for more information.\n";
+    }
+    exit;
+    }
+
+elsif(-s "$LANG.po"){
+
+    print "Building the $PACKAGE.pot ...";
+
+    $c="xgettext --default-domain\=$PACKAGE --directory\=\.\."
+      ." --add-comments --keyword\=\_ --keyword\=N\_"
+      ." --files-from\=\.\/POTFILES\.in ";  
+    $c1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
+       ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
+
+    `$c`;
+    `$c1`;
+
+    print "...done";
+
+    print "\nNow merging $LANG.po with $PACKAGE.pot, and creating an updated $LANG.po ...\n";
+
+    
+    $d="mv $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po";
+
+    $f="msgfmt --statistics $LANG.po";
+
+    `$d`;
+    `$f`;
+
+    unlink "messages";
+    unlink "$LANG.po.old";
+
+    exit;
+}
+
+else{
+    print "update.pl:  sorry $LANG.po does not exist!\n";
+    print "Try `update.pl --help' for more information.\n";    
+    exit;
+}